home *** CD-ROM | disk | FTP | other *** search
Wrap
10 REM ********************** 11 REM * SOUTHERN DRAW * 12 REM * BY DON O'SHEA * 13 REM * COPYRIGHT (C) 1982 * 14 REM * BY MICRO-SPARC INC * 15 REM * LINCOLN, MA. 01773 * 16 REM ********************** 25 D$ = CHR$(4):BELL$ = CHR$(7): TEXT 30 DIM C$(7),D$(2): FOR I = 0 TO 7: READ C$(I): NEXT 35 POKE 232,252: POKE 233,29 40 PRINT D$;"BLOAD ARROW7,A$1DFC" 45 PRINT D$;"BLOAD MOVE.X,A$300" 50 X = 140:Y = 80:H = 3:B% = 1:D = 1:SIZE = 1:C = 128/3.141592654: HCOLOR= H:T = -16301 55 HOME : VTAB 10: HTAB 15: PRINT "SOUTHERN DRAW": HTAB 15: PRINT "BY DON O'SHEA": VTAB 18: PRINT "(C) 1982 BY MICRO-SPARC, INC.": FOR I = 1 TO 2000: NEXT I: GOTO 450 60 VTAB 21: PRINT :X$ = " " + STR$(X):Y$ = " " + STR$(Y): VTAB 22: PRINT "X="; RIGHT$(X$,3);: HTAB 10: PRINT " Y="; RIGHT$(Y$,3);: HTAB 20: PRINT "COLOR:";C$(H): HCOLOR= H: PRINT 65 VTAB 23: PRINT : VTAB 23: PRINT "DRAW:";: IF D = 1 THEN PRINT "OFF";: GOTO 75 70 PRINT " ";: FLASH : PRINT "ON";: NORMAL 75 HTAB 10: PRINT " STEP:";B%;: HTAB 20: PRINT "PENCIL:";SIZE;: PRINT " (Q:HELP)": RETURN 100 REM ******************* 105 REM TRAPS 110 REM ******************* 115 IF A$ = "G" THEN H = 1: GOSUB 60: RETURN 120 IF A$ = "V" THEN H = 2: GOSUB 60: RETURN 125 IF A$ = "W" THEN H = 3: GOSUB 60: RETURN 130 IF A$ = "O" THEN H = 5: GOSUB 60: RETURN 135 IF A$ = "B" THEN H = 6: GOSUB 60: RETURN 140 IF A$ = "X" THEN H = 0: GOSUB 60: RETURN 145 IF A$ = "F" THEN T = -(32603 +T): POKE T,0: RETURN 150 IF A$ = CHR$(32) THEN D = 3 -D: GOSUB 60:Z = FRE(0): RETURN 155 IF Z >0 AND Z <10 THEN B% = Z: GOSUB 60: RETURN 160 IF A$ = "Y" THEN SIZE = 1: GOSUB 60: RETURN 165 IF A$ = "U" THEN SIZE = 2: GOSUB 60: RETURN 170 IF A$ = "H" THEN SIZE = 3: GOSUB 60: RETURN 175 IF A$ = "J" THEN SIZE = 4: GOSUB 60: RETURN 180 IF A$ = "N" THEN SIZE = 5: GOSUB 60: RETURN 185 IF A$ = "M" THEN SIZE = 6: GOSUB 60: RETURN 190 IF A$ = "P" THEN GOSUB 340: RETURN 195 IF A$ = "R" THEN GOSUB 350: RETURN 200 IF A$ = "L" THEN GOSUB 360: XDRAW 7 AT X,Y: GOSUB 340: RETURN 205 IF A$ = "S" THEN GOSUB 380: RETURN 210 IF A$ = "*" THEN HPLOT X,Y: CALL 62454: XDRAW 7 AT X,Y: RETURN 215 IF A$ = "Q" THEN GOSUB 730: GET E$: POKE -16304,0: HOME : GOSUB 60: RETURN 220 PRINT BELL$;: RETURN 225 PRINT BELL$;: RETURN 300 REM ******************* 310 REM SCREEN CONTROL 320 REM SUBROUTINES 330 REM ******************* 340 XDRAW 7 AT X,Y: POKE 4,0: CALL 768: XDRAW 7 AT X,Y: RETURN 350 XDRAW 7 AT X,Y: POKE 0,0: POKE 1,64: POKE 2,0: POKE 3,32: CALL 790: XDRAW 7 AT X,Y: RETURN 360 HOME : VTAB 21: INPUT "FILE TO BE LOADED: ";F$ 365 IF RIGHT$(F$,1) = CHR$(27) THEN HOME : GOSUB 60: RETURN 370 PRINT D$;"BLOAD";F$;",A$2000": HOME : GOSUB 60: RETURN 380 HOME : VTAB 21: INPUT "FILE TO BE SAVED: ";F$: XDRAW 7 AT X,Y 385 IF RIGHT$(F$,1) = CHR$(27) THEN HOME : GOSUB 60: RETURN 390 PRINT D$;"BSAVE ";F$;",A$2000,L$1FF8": HOME : GOSUB 60: RETURN 400 REM ******************* 410 REM MAIN PROGRAM 420 REM KEYBOARD AND PADDLE 430 REM ROUTINES 440 REM ******************* 450 HGR : GOSUB 60 460 SCALE= 4 470 ROT= PDL(0)/4: XDRAW 7 AT X,Y 480 Z = PEEK( -16384): POKE -16368,0: IF Z >127 THEN A$ = CHR$(Z -128):Z = VAL(A$): GOSUB 105 490 IF PEEK( -16287) <128 THEN XDRAW 7 AT X,Y: GOTO 470 500 W = PDL(0)/C:X1 = X:Y1 = Y 510 X = X + INT(B% * SIN(W) +.5) 520 Y = Y - INT(B% * COS(W) +.5) 530 IF Y <0 THEN Y = 0: PRINT BELL$; 540 IF X <0 THEN X = 0: PRINT BELL$; 550 IF Y >191 THEN Y = 191: PRINT BELL$; 560 IF X >279 THEN X = 279: PRINT BELL$; 570 GOSUB 60 575 REM ********************* 580 REM DRAW ROUTINE (IF D=2) 585 REM ********************* 590 IF D = 1 THEN XDRAW 7 AT X1,Y1: GOTO 460 600 IF SIZE = 1 THEN XDRAW 7 AT X1,Y1: HPLOT X1,Y1 TO X,Y: GOTO 460 610 XDRAW 7 AT X1,Y1: SCALE= 1: DRAW SIZE AT X,Y: GOTO 460 700 REM ******************* 710 REM PROGRAM COMMANDS 720 REM ******************* 730 TEXT : HOME : HTAB 14: PRINT "SOUTHERN DRAW": HTAB 14: PRINT "BY DON O'SHEA" 740 PRINT : INVERSE : PRINT "PENCIL CONTROL";: NORMAL : HTAB (21): INVERSE : PRINT "SCREEN CONTROL": NORMAL 750 PRINT "PADDLE 0 DIRECTS IT P(UT PG1 ON PG2)" 760 PRINT "BUTTON 0 MOVES IT R(ETURN PG2 TO P1)" 770 PRINT "1-9:STEPS PER MOVE L(OAD FROM DISK)" 780 PRINT "SPACE BAR TURNS S(AVE TO DISK)" 790 PRINT "DRAW ON AND OFF F(ULL SCREEN TOGGLE)" 800 INVERSE : PRINT "COLOR CONTROL";: NORMAL : HTAB (21): INVERSE : PRINT "PENCIL SIZES": NORMAL 810 PRINT "W(HITE1) Y:^ U:*^ H:*^ J:*^*" 820 PRINT "O(RANGE) 1 2 ** 3 ** 4 ***" 830 PRINT "B(LUE) ** ***" 840 PRINT "G(REEN) N:5X5 M:7X8" 850 PRINT "V(IOLET) 5 6" 860 PRINT "X:BLACK1" 870 PRINT "*:CLEARS SCREEN Y(SIZE1) DRAWS LINE" 880 PRINT "TO CHOSEN COLOR EQUAL TO # OF STEPS": RETURN 890 DATA BLACK1," GREEN",VIOLET,WHITE1,BLACK2,ORANGE," BLUE ",WHITE2